package cn.tedu.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

/*本类用来测试Collection接口*/
public class TestCollection {
    public static void main(String[] args) {
        //Collection c = new Collection();
        /*1.<Integer>是泛型，用来约束集合中的元素类型，只能写引用类型，不能写基本类型*/
        Collection <Integer> c = new ArrayList<Integer>();

        //2.1
        c.add(100);
        c.add(200);
        c.add(300);
        c.add(400);
        c.add(500);
        System.out.println(c);

        //c.clear();//清空集合中的元素
        //System.out.println(c.clear());
        System.out.println(c.contains(300));//true,判断集合中是否包含指定元素300
        System.out.println(c.hashCode());//127240651,返回此集合对应的哈希码
        System.out.println(c.isEmpty());//false，判断集合是否为空
        System.out.println(c.remove(100));//true,移除集合中的指定元素100
        System.out.println(c);
        System.out.println(c.size());//获取集合中元素的个数，类似数组的长度
        System.out.println(c.equals(200));//false,判断集合对象与200是否相等
        System.out.println(c.toArray());//[Ljava.lang.Object;@14ae5a5
        System.out.println(Arrays.toString(c.toArray()));//把集合转为数组，查看数组元素需要使用工具类

        //2.2测试集合间的操作、
        Collection<Integer> c2 = new ArrayList<Integer>();
        c2.add(2);
        c2.add(4);
        c2.add(6);
        System.out.println(c2);

        c.addAll(c2);//把c2集合中的元素添加到c 集合中
        System.out.println(c);
        System.out.println(c.contains(c2));//false，查看c集合是否包含一个叫c2的元素
        System.out.println(c.containsAll(c2));//true,查看c集合是否包含c2集合的所有元素

        System.out.println(c.retainAll(c2));//true,取c集合中属于c2集合的所有元素"交集"
        System.out.println(c);

        System.out.println(c.removeAll(c2));//true,移除c集合中属于c2集合中的所有元素
        System.out.println(c);

        c.add(100);
        c.add(200);
        c.add(300);
        c.add(400);
        c.add(500);

        //2.3用来遍历/迭代 集合中的元素
        /*0.需要获取这个集合的迭代器
        1.如何获取集合的迭代器 c.iterator()
        2.判断集合是否有下个元素  it.hasNext()
        3.获取当前迭代到的元素  it.next()
        * */
       Iterator<Integer> it = c.iterator();
        while(it.hasNext()){
            Integer num = it.next();
            System.out.println(num);
        }
    }
}
